home *** CD-ROM | disk | FTP | other *** search
AMOS Source Code | 1995-08-17 | 1.6 KB | 70 lines |
- ' Realtime Zoomroutine by Chris Hodges.
- '
- ' Syntax f�r die Procedures:
- '
- ' FASTZOOM[START,XPOS,YPOS,XSIZE,YSIZE]
- '
- ' START ist die Adresse des Chunky-Images z.B Start(13) oder so.
- ' XPOS und YPOS geben den Mittelpunkt des Images an. XSIZE und YSIZE
- ' ist die neue Gr��e, auf die gezoomt werden soll. KEINE NEGATIVEN
- ' WERTE ANGEBEN! DARAUF ACHTEN, DASS DAS OBJEKT DEN BILDSCHIRM NICHT
- ' VERL�SST!
- '
- ' FASTZOOMPROPX[START,XPOS,YPOS,XSIZE]
- '
- ' Wie FASTZOOM, nur da� hier die YSIZE-Variable den Originalgr��en
- ' entsprechend kalkuliert wird.
- '
- ' FASTZOOMPROPY[START,XPOS,YPOS,YSIZE]
- '
- ' Wie FASTZOOMPROPX, nur wird hier XSIZE proportional berechnet.
- '
- ' Diese Routine ist 32-colours ONLY! :-)
- '
- 'Pload "dh2:CkyZoomB.o",7
- 'Dload "dh2:ChunkyTest.bin",13
-
- Screen Open 0,320,256,32,0
- Curs Off : Flash Off : Paper 0 : Pen 1 : Cls
- ST=Start(13)
- For A=0 To 31
- Colour A,Deek(ST+32+A*2)
- Next
- Double Buffer
- Autoback 0
- X=0
- Do
- Screen Swap : RemWait Vbl
- Add X,1,0 To 100
- ' Blitter Clear 0,0
- ' Blitter Clear 0,1
- ' Blitter Clear 0,2
- ' Blitter Clear 0,3
- ' Blitter Clear 0,4
- ' Blitter Wait
- ' FASTZOOM[ST,160,128,X,X]
- FASTZOOMPROPY[ST,160,128,X*2]
- Loop
- Procedure FASTZOOMPROPX[AD,X,Y,DX]
- DY=(DX*Deek(AD+2))/Deek(AD)
- Areg(0)=AD
- Dreg(0)=DX : Dreg(1)=DY
- Dreg(2)=X-(DX+1)/2
- Dreg(3)=Y-(DY+1)/2
- Call Start(7)
- End Proc
- Procedure FASTZOOMPROPY[AD,X,Y,DY]
- DX=(DY*Deek(AD))/Deek(AD+2)
- Areg(0)=AD
- Dreg(0)=DX : Dreg(1)=DY
- Dreg(2)=X-(DX+1)/2
- Dreg(3)=Y-(DY+1)/2
- Call Start(7)
- End Proc
- Procedure FASTZOOM[AD,X,Y,DX,DY]
- Areg(0)=AD
- Dreg(0)=DX : Dreg(1)=DY
- Dreg(2)=X-(DX+1)/2
- Dreg(3)=Y-(DY+1)/2
- Call Start(7)
- End Proc